package service;

import vo.CartLine;

import java.util.List;

/*
* @description:
*/
public interface ICartLineService {
    /*
    * @description: 添加一条新的购物车数据
    * @param [userId,bookId]
    * @return List<CartLine>
    */
    boolean addCartLine(int userId,int bookId);
    /*
    * @description:减少一条购物车数据
    * @param [userId, bookId]
    * @return List<CartLine>
    */
   void cutCartLine(int userId,int bookId);
    /*
    * @description:根据购物车的id找出该用户添加到购物车内的所有商品
    * @param [cartId]
    * @return java.util.List<vo.CartLine>
    */
    List<CartLine> selectCartLineByCartId(int cartId);


    /*
    * @description:根据购物车id和书本id找出相应购物车信息，如果没有返回null
    * @param [cartId, bookId]
    * @return vo.CartLine
    */
    CartLine selectCartLine(int cartId,int bookId);

    /*
    * @description:计算用户购物车总价钱
    * @param [cartLines]
    * @return double
    */
    double totalPrice(List<CartLine>cartLines);

    /*
    * @description:计算所有购物车信息中这本书的数量，确保不会超库存
    * @param [cartLines]
    * @return int
    */
    int totalCount(List<CartLine>cartLines);

    /*
    * @description:根据cartLineID获取购物车数据
    * @param [cartLineId]
    * @return vo.CartLine
    */
    CartLine selectCartLineById(int cartLineId);

    /*
    * @description:根据cartLineID删除取购物车数据
    * @param [id]
    * @return void
    */
    void delCartLineById(int id);

}
